home *** CD-ROM | disk | FTP | other *** search
/ Super PC 34 / Super PC 34 (Shareware).iso / spc / UTIL / EBL409 / README2 < prev    next >
Encoding:
Text File  |  1995-11-04  |  13.7 KB  |  359 lines

  1.  
  2.  
  3.         DEAR SHAREWARE USER AND POTENTIAL CUSTOMER:
  4.  
  5.  
  6.        We are happy  to provide you with this updated diskette.  In
  7.        this edition there  are several new functions based on ideas
  8.        from customers  like yourself, plus a few bug fixes. We look
  9.        forward to improving the product further to meet your needs.
  10.        Complete details of all changes are shown below.
  11.  
  12.        We  would  also  like to extend a  special  offer to  anyone
  13.        interested in further documentation.  The  entire  text from
  14.        "The EBL-Plus Language - Users Guide" is  included  in  this
  15.        distribution.  Simply  look  at  the  users  guide by typing
  16.        'VIEWBOOK  EBLBOOK'  at  the  system  command  prompt.  This
  17.        hypertext  guide allows you  to  quickly  browse  the entire
  18.        manual.    We're  sure  you  will  find  it  useful.   After
  19.        experiencing the power of EBL-Plus,  batch  files will never
  20.        be the same!
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.        DETAIL OF CHANGES TO EBL-PLUS
  28.  
  29.        *   EBL 4.09
  30.  
  31.            -   Included  ABBREV(),  BITAND(),  BITOR(),   BITXOR(),
  32.                BLINK(),  CURSOR(),   DOSCHARIN(),  OVERLAY(),   and
  33.                XRANGE() functions from the compiler.
  34.  
  35.            -   Added recognition of DOS 7.X & OS/2 2.X & Windows-95!
  36.  
  37.            -   New  error  message  #47   "Unknown  function()"  to
  38.                clarify certain types of syntax errors.
  39.  
  40.            -   Enhanced  inline code  capability  of  stack to also
  41.                allow  execution  when a keyboard  stack  pause  has
  42.                completed. This also allows execution of inline code
  43.                even when applications aren't  waiting for keys.  On
  44.                entry, the inline  code can look at  AH to determine
  45.                the   source  of   startup.  The  expanded  register
  46.                meanings are:
  47.                        Entry into inline code:
  48.                             AH = 0 = GetKey
  49.                                  1 = GetKeyStatus
  50.                                  2 = Pause (via Timer Tick) complete
  51.                             DS:SI  = Address of the start of the Inline Code
  52.                        During inline:
  53.                             AX,BX,CX,DX,SI can be changed freely
  54.                        Return from Inline:
  55.                             SI = 0 = Call standard BIOS and reexecute the same inline
  56.                             AH = x = If SI=0 and AH=2 on entry, AH=x on return indicates
  57.                                          amount of ticks to pause before reexecuting.
  58.  
  59.            -   New DOS GROUP command will act  as synonym for LEAVE
  60.                command.
  61.  
  62.            -   New BAT GROUP command will flag return to  EBL after
  63.                DOS GROUPs. (Truely is a NOP).
  64.  
  65.            -   Fixed  GOTO  to  DOS label  when  using  /OLD  under
  66.                limited memory condition.
  67.  
  68.  
  69.        *   EBL 4.07
  70.  
  71.            -   Updated code which follows DOS's CALL chain to match
  72.                DOS5's characteristics.  (thanks  Arno  Krakauer and
  73.                George Szentirmai)
  74.  
  75.            -   Updated  code which closes  files  being  read  when
  76.                shelling. (Thanks Jim Fouch)
  77.  
  78.        *   EBL 4.06c
  79.  
  80.            -   Support added to recognize DOS 5.
  81.  
  82.            -   Added  flexability  when  GOTO  is  used   within  a
  83.                BEGIN/END block to avoid many block nesting errors.
  84.  
  85.            -   A bug was fixed to allow a ';' (semicolon) character
  86.                to be used at the end of all TYPE statements after a
  87.                WINDOW() function, just like  it can be used outside
  88.                of a window.
  89.  
  90.            -   The COLOR() function was enhanced to allow free-form
  91.                color names contained within variables. This feature
  92.                matches  the capability of the Professional EBL-Plus
  93.                compiler version 1.02 and later.
  94.  
  95.        *   EBL 4.05
  96.  
  97.            -   A minor  bug within the GOTO command caused it to be
  98.                slower than normal.  It now runs at full speed.
  99.  
  100.  
  101.  
  102.        Page     1
  103.  
  104.  
  105.            -   KEY(PRTSC) key is recognized and will properly print
  106.                the screen on the line printer when the  key is read
  107.                from the stack.  The  equivalent  key  value  within
  108.                BEGSTACK is \F0\01.
  109.  
  110.            -   Inline code can be placed in the  stack.  If you are
  111.                familiar with  assembly language  programming,  this
  112.                technique can  provide extra power within  the stack
  113.                in special  instances.  The executable code must  be
  114.                preassembled and the hex machine code must be placed
  115.                in  the  stack  using  BEGSTACK.  The  prefix within
  116.                BEGSTACK is \F0\02\ss\cc\cc\cc  ...  \cc where ss is
  117.                the size of the code in  bytes (0 to  255 bytes) and
  118.                cc is the hexadecimal value of each byte to execute.
  119.                The suffix \C3; must also be added. C3 is a near RET
  120.                instruction and  the ';'  prevents  an implied Enter
  121.                key from being stacked.  The registers  AX,  BX, CX,
  122.                DX, and  SI will be saved prior to execution and can
  123.                be   used  freely  as  temporary  storage.  The   DS
  124.                register will be the same  as  CS.  On  entry to the
  125.                inline code, AH=0 if the application is requesting a
  126.                keystroke,  and  AH=1 if  requesting keyboard status
  127.                (refer to BIOS Int  16h for more information). DS:SI
  128.                will  be set to the address of the inline code entry
  129.                point.  If SI  is zero  before  returning,  EBL will
  130.                allow  a  single  keystroke to be  gotten  from  the
  131.                hardware and the inline code will be reexecuted.  In
  132.                this case,  other items on the keyboard  stack  will
  133.                not  be  used  until  the  inline  code  returns  SI
  134.                non-zero.  The   code  must  be   fully  relocatable
  135.                without   any   absolute  addresses.  If  any  other
  136.                registers are used, they must be  saved and restored
  137.                within the inline code.
  138.  
  139.                Some examples: The following will create a beep when
  140.                executed within the stack.
  141.                BEGSTACK
  142.                \f0\02\06\b8\07\0e\cd\10\c3;
  143.                END
  144.  
  145.                It is  equivalent to the following assembly language
  146.                code
  147.                        Mov     Ax,0E07h
  148.                        Int     10h
  149.                        Ret
  150.  
  151.                The following will page eject the LPT1 printer
  152.                BEGSTACK
  153.                \f0\02\08\ba\00\00\b0\0c\cd\17\c3;
  154.                END
  155.  
  156.                and is equivalent to
  157.                        Mov     Dx,0
  158.                        Mov     Al,0Ch
  159.                        Int     17h
  160.                        Ret
  161.  
  162.                The   following   automatically   types   the   word
  163.                'ACCOUNT',  then  will  allow  3  keystrokes  to  be
  164.  
  165.  
  166.        Page     2
  167.  
  168.  
  169.                manually entered, then the enter key will be pressed
  170.                after this.
  171.                BEGSTACK
  172.                ACCOUNT;
  173.                \f0\02\12\EB\02\04\00\80\FC\00\75\05\FF\4C\02\74\03\BE\00\00\C3;
  174.  
  175.                END
  176.  
  177.                and the inline code is equivalent  to the following.
  178.                This  example demonstrates how local storage can  be
  179.                maintained  for  the inline code.  It also shows how
  180.                the stack  can  be  stopped  until  specific  events
  181.                occur,  in this case waiting for the application  to
  182.                request 3 keys.
  183.                        Jmp     short Me        ; Jump over local storage
  184.                        Dw      4               ; Define local counter
  185.                Me:     Cmp     Ah,0            ; Did App request a key?
  186.                        Jne     Restart         ; No, am counting just keys
  187.                        Dec     Word ptr [si+2] ; Decrement the count of keys
  188.                        Je      Done            ; Count is over?
  189.                Restart: Mov    Si,0            ; No, SI = 0 means restart
  190.                Done:   Ret                     ; Else continue & release stack
  191.  
  192.        *   EBL 4.04
  193.  
  194.            -   Corrected bug where drive letter was always required
  195.                for  the  updated  CHDIR()  function (e.g.  CHDIR("C
  196.                :\SUB"). It is now optional as it was intended (e.g.
  197.                CHDIR("\SUB").
  198.  
  199.            -   The  British   spelling   for   CENTRE()   was   not
  200.                implemented   correctly.   Now  both  CENTER()   and
  201.                CENTRE() perform the same function.
  202.  
  203.            -   A bug was fixed  within  the  SPACE()  function that
  204.                caused a hang if one non-blank character was used as
  205.                a fill.
  206.  
  207.            -   A  SUBSTR()  function  has  been  added.  This  is a
  208.                superset of the existing substring operator '$'. The
  209.                syntax  is: SUBSTR( string ,start {,length, {pad}} )
  210.                This function returns the sub-string  of  a (string)
  211.                starting at the (start) character within the string,
  212.                up  to  (length)  characters  long.  If  (length) is
  213.                longer  than  the  original  string,  then  a  (pad)
  214.                character is  appended. The default (length) is  the
  215.                size  of the  original  string.  The  default  (pad)
  216.                character  is  a blank. A  synonym  for the SUBSTR()
  217.                function is MID(). Either function name can be used.
  218.  
  219.        *   EBL 4.03
  220.  
  221.            -   Corrected minor bug in DATE(Century) function.
  222.  
  223.            -   Corrected  cursor positioning  bug if READ  was used
  224.                within a WINDOW.
  225.  
  226.            -   Updated  EDIT() to  read keystrokes from  DOS rather
  227.                than BIOS to provide  a system  interface that works
  228.  
  229.  
  230.        Page     3
  231.  
  232.  
  233.                on a wider set of computers.
  234.  
  235.            -   Corrected SELECT() cursor positioning bug if used on
  236.                a slow PC.
  237.  
  238.            -   Updated CHDIR() function to also change  the default
  239.                drive in addition to the current subdirectory.
  240.  
  241.        *   EBL 4.02
  242.  
  243.            -   On  IBM's  101 key  keyboard, the  CHARIN() function
  244.                returned F1 and F2 when  F11  and  F12  was  pressed
  245.                respectively. This has been fixed.
  246.  
  247.            -   A new  /A option ignores DOS  version checking  (use
  248.                with caution).  Must  be  used with /R option as in:
  249.                BAT /A  /R  PROGRAM.BAT  to  startup  the batch file
  250.                named  PROGRAM. This  will  allow  EBL to work under
  251.                many DOS enhancers like PC-MOS and 4DOS.
  252.  
  253.            -   The EBL-Plus  Professional version  of  EBL.BIN  and
  254.                EBL0.BIN are released and match 4.02 in features and
  255.                capabilities. Both can  be  'bound' to  a batch file
  256.                with  DOS's  COPY command, then distributed  royalty
  257.                free.  The  EBL0 version  does  not use or reference
  258.                any resident  memory. By comparison, the EBL version
  259.                has  a small  TSR portion that remains resident just
  260.                like  the  matching BAT.COM.  Please  contact  us at
  261.                1-800-634-8188 if you would like further information
  262.                about the EBL-Plus Professional version.
  263.  
  264.        *   4.01
  265.  
  266.            -   KEY("  ")  function  within  an  expression  returns
  267.                "KEY020" which matches the  INKEY function. Formerly
  268.                it returned " " which was different from INKEY.
  269.  
  270.            -   Recognition of DOS 4.x rather than 4.0
  271.  
  272.            -   RANDOM(  {{min, }  max {,seed}} )  function has been
  273.                added.  The default min  is  0, default  max is 999,
  274.                default seed is random  based  on time.  If only one
  275.                parameter is supplied, it is  a max and the min will
  276.                be  0.  If seed  is not given, seed is random (based
  277.                on  system  time).  If  a  seed  is given,  it  will
  278.                restart a repeatable pseudo random pattern.
  279.  
  280.            -   Correction made  to  DIR(file,R) command so  that it
  281.                will restore properly.
  282.  
  283.            -   TRANSLATE( string {,{to list}{,{from list}{,pad}}} )
  284.                function has been added.  This function translates a
  285.                string to different characters.  If  a  character in
  286.                the string is  found in the input list of characters
  287.                (from),  then   it   will   be  translated   to  the
  288.                corresponding character in the output list (to).  If
  289.                the character is  not found in the input  list, then
  290.                no change is made.  If there are more  characters in
  291.                {from} than {to},  it will be  translated to  a  pad
  292.  
  293.  
  294.        Page     4
  295.  
  296.  
  297.                character.  The  default pad character  is  a blank.
  298.                The default output list is empty (null).  If  only a
  299.                string  is  supplied without  any  lists,  then  the
  300.                string  will  be  translated   to  upper  case.  For
  301.                example:
  302.  
  303.                   TRANSLATE("12/23/56","-","/")    == "12-23-56"
  304.                   TRANSLATE("abcde","HEX","bcd")   == "aHEXe"
  305.                   TRANSLATE("abcde","1","bcd",".") == "a1..e"
  306.  
  307.            -   Correction  made to an  error inadvertently reported
  308.                when an extended BATXV variable was used in a  SHELL
  309.                command.
  310.  
  311.            -   Correction made to duplicate CHDIR() function listed
  312.                in help screen.
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.        Page     5
  359.